use super::crypt_algid::{CRYPT_MD_AlgId, CRYPT_PKEY_AlgId, CRYPT_PKEY_ParaId};
use super::crypt_types::{
    CRYPT_Curve25519Prv, CRYPT_Curve25519Pub, CRYPT_DhPara, CRYPT_DhPrv, CRYPT_DhPub,
    CRYPT_DsaPara, CRYPT_DsaPrv, CRYPT_DsaPub, CRYPT_EAL_LibCtx, CRYPT_EccPara, CRYPT_EccPrv,
    CRYPT_EccPub, CRYPT_ElGamalPara, CRYPT_ElGamalPrv, CRYPT_ElGamalPub, CRYPT_KemDecapsKey,
    CRYPT_KemEncapsKey, CRYPT_MlDsaPrv, CRYPT_MlDsaPub, CRYPT_PaillierPara, CRYPT_PaillierPrv,
    CRYPT_PaillierPub, CRYPT_RsaPara, CRYPT_RsaPrv, CRYPT_RsaPub, CRYPT_SlhDsaPrv, CRYPT_SlhDsaPub,
    CRYPT_XmssPrv, CRYPT_XmssPub,
};
use crate::bsl::bsl_params::BSL_Param;
pub const CRYPT_EAL_PKEY_UNKNOWN_OPERATE: u32 = 0;
pub const CRYPT_EAL_PKEY_CIPHER_OPERATE: u32 = 1;
pub const CRYPT_EAL_PKEY_EXCH_OPERATE: u32 = 2;
pub const CRYPT_EAL_PKEY_SIGN_OPERATE: u32 = 4;
pub const CRYPT_EAL_PKEY_KEM_OPERATE: u32 = 8;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct CRYPT_EAL_PkeyPub {
    pub id: CRYPT_PKEY_AlgId,
    pub key: CRYPT_EAL_PkeyPub__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CRYPT_EAL_PkeyPub__bindgen_ty_1 {
    pub rsaPub: CRYPT_RsaPub,
    pub dsaPub: CRYPT_DsaPub,
    pub dhPub: CRYPT_DhPub,
    pub eccPub: CRYPT_EccPub,
    pub curve25519Pub: CRYPT_Curve25519Pub,
    pub paillierPub: CRYPT_PaillierPub,
    pub kemEk: CRYPT_KemEncapsKey,
    pub elgamalPub: CRYPT_ElGamalPub,
    pub mldsaPub: CRYPT_MlDsaPub,
    pub slhDsaPub: CRYPT_SlhDsaPub,
    pub xmssPub: CRYPT_XmssPub,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPub__bindgen_ty_1"]
        [::std::mem::size_of::<CRYPT_EAL_PkeyPub__bindgen_ty_1>() - 48usize];
    ["Alignment of CRYPT_EAL_PkeyPub__bindgen_ty_1"]
        [::std::mem::align_of::<CRYPT_EAL_PkeyPub__bindgen_ty_1>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::rsaPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, rsaPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::dsaPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, dsaPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::dhPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, dhPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::eccPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, eccPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::curve25519Pub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, curve25519Pub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::paillierPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, paillierPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::kemEk"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, kemEk) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::elgamalPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, elgamalPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::mldsaPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, mldsaPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::slhDsaPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, slhDsaPub) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub__bindgen_ty_1::xmssPub"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub__bindgen_ty_1, xmssPub) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPub"][::std::mem::size_of::<CRYPT_EAL_PkeyPub>() - 56usize];
    ["Alignment of CRYPT_EAL_PkeyPub"][::std::mem::align_of::<CRYPT_EAL_PkeyPub>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPub::id"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub, id) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPub::key"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPub, key) - 8usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct CRYPT_EAL_PkeyPrv {
    pub id: CRYPT_PKEY_AlgId,
    pub key: CRYPT_EAL_PkeyPrv__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CRYPT_EAL_PkeyPrv__bindgen_ty_1 {
    pub rsaPrv: CRYPT_RsaPrv,
    pub dsaPrv: CRYPT_DsaPrv,
    pub dhPrv: CRYPT_DhPrv,
    pub eccPrv: CRYPT_EccPrv,
    pub curve25519Prv: CRYPT_Curve25519Prv,
    pub paillierPrv: CRYPT_PaillierPrv,
    pub kemDk: CRYPT_KemDecapsKey,
    pub elgamalPrv: CRYPT_ElGamalPrv,
    pub mldsaPrv: CRYPT_MlDsaPrv,
    pub slhDsaPrv: CRYPT_SlhDsaPrv,
    pub xmssPrv: CRYPT_XmssPrv,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPrv__bindgen_ty_1"]
        [::std::mem::size_of::<CRYPT_EAL_PkeyPrv__bindgen_ty_1>() - 96usize];
    ["Alignment of CRYPT_EAL_PkeyPrv__bindgen_ty_1"]
        [::std::mem::align_of::<CRYPT_EAL_PkeyPrv__bindgen_ty_1>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::rsaPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, rsaPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::dsaPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, dsaPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::dhPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, dhPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::eccPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, eccPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::curve25519Prv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, curve25519Prv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::paillierPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, paillierPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::kemDk"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, kemDk) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::elgamalPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, elgamalPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::mldsaPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, mldsaPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::slhDsaPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, slhDsaPrv) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv__bindgen_ty_1::xmssPrv"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv__bindgen_ty_1, xmssPrv) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPrv"][::std::mem::size_of::<CRYPT_EAL_PkeyPrv>() - 104usize];
    ["Alignment of CRYPT_EAL_PkeyPrv"][::std::mem::align_of::<CRYPT_EAL_PkeyPrv>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv::id"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv, id) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPrv::key"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPrv, key) - 8usize];
};
#[repr(C)]
#[derive(Copy, Clone)]
pub struct CRYPT_EAL_PkeyPara {
    pub id: CRYPT_PKEY_AlgId,
    pub para: CRYPT_EAL_PkeyPara__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union CRYPT_EAL_PkeyPara__bindgen_ty_1 {
    pub rsaPara: CRYPT_RsaPara,
    pub dsaPara: CRYPT_DsaPara,
    pub dhPara: CRYPT_DhPara,
    pub eccPara: CRYPT_EccPara,
    pub paillierPara: CRYPT_PaillierPara,
    pub elgamalPara: CRYPT_ElGamalPara,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPara__bindgen_ty_1"]
        [::std::mem::size_of::<CRYPT_EAL_PkeyPara__bindgen_ty_1>() - 88usize];
    ["Alignment of CRYPT_EAL_PkeyPara__bindgen_ty_1"]
        [::std::mem::align_of::<CRYPT_EAL_PkeyPara__bindgen_ty_1>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::rsaPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, rsaPara) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::dsaPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, dsaPara) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::dhPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, dhPara) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::eccPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, eccPara) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::paillierPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, paillierPara) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara__bindgen_ty_1::elgamalPara"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara__bindgen_ty_1, elgamalPara) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of CRYPT_EAL_PkeyPara"][::std::mem::size_of::<CRYPT_EAL_PkeyPara>() - 96usize];
    ["Alignment of CRYPT_EAL_PkeyPara"][::std::mem::align_of::<CRYPT_EAL_PkeyPara>() - 8usize];
    ["Offset of field: CRYPT_EAL_PkeyPara::id"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara, id) - 0usize];
    ["Offset of field: CRYPT_EAL_PkeyPara::para"]
        [::std::mem::offset_of!(CRYPT_EAL_PkeyPara, para) - 8usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct EAL_PkeyCtx {
    _unused: [u8; 0],
}
pub type CRYPT_EAL_PkeyCtx = EAL_PkeyCtx;
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyIsValidAlgId(id: CRYPT_PKEY_AlgId) -> bool;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyNewCtx(id: CRYPT_PKEY_AlgId) -> *mut CRYPT_EAL_PkeyCtx;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_ProviderPkeyNewCtx(
        libCtx: *mut CRYPT_EAL_LibCtx,
        algId: i32,
        pkeyOperType: u32,
        attrName: *const ::std::os::raw::c_char,
    ) -> *mut CRYPT_EAL_PkeyCtx;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyCopyCtx(to: *mut CRYPT_EAL_PkeyCtx, from: *const CRYPT_EAL_PkeyCtx)
    -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyDupCtx(pkey: *const CRYPT_EAL_PkeyCtx) -> *mut CRYPT_EAL_PkeyCtx;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyFreeCtx(pkey: *mut CRYPT_EAL_PkeyCtx);
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetPara(
        pkey: *mut CRYPT_EAL_PkeyCtx,
        para: *const CRYPT_EAL_PkeyPara,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetParaEx(pkey: *mut CRYPT_EAL_PkeyCtx, param: *const BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetPara(
        pkey: *const CRYPT_EAL_PkeyCtx,
        para: *mut CRYPT_EAL_PkeyPara,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetParaById(pkey: *mut CRYPT_EAL_PkeyCtx, id: CRYPT_PKEY_ParaId) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGen(pkey: *mut CRYPT_EAL_PkeyCtx) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetPub(pkey: *mut CRYPT_EAL_PkeyCtx, key: *const CRYPT_EAL_PkeyPub)
    -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetPubEx(pkey: *mut CRYPT_EAL_PkeyCtx, param: *const BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetPrv(pkey: *mut CRYPT_EAL_PkeyCtx, key: *const CRYPT_EAL_PkeyPrv)
    -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetPrvEx(pkey: *mut CRYPT_EAL_PkeyCtx, param: *const BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetPub(pkey: *const CRYPT_EAL_PkeyCtx, key: *mut CRYPT_EAL_PkeyPub)
    -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetPubEx(pkey: *const CRYPT_EAL_PkeyCtx, param: *mut BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetPrv(pkey: *const CRYPT_EAL_PkeyCtx, key: *mut CRYPT_EAL_PkeyPrv)
    -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetPrvEx(pkey: *const CRYPT_EAL_PkeyCtx, param: *mut BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySign(
        pkey: *const CRYPT_EAL_PkeyCtx,
        id: CRYPT_MD_AlgId,
        data: *const u8,
        dataLen: u32,
        sign: *mut u8,
        signLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyVerify(
        pkey: *const CRYPT_EAL_PkeyCtx,
        id: CRYPT_MD_AlgId,
        data: *const u8,
        dataLen: u32,
        sign: *const u8,
        signLen: u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySignData(
        pkey: *const CRYPT_EAL_PkeyCtx,
        hash: *const u8,
        hashLen: u32,
        sign: *mut u8,
        signLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyVerifyData(
        pkey: *const CRYPT_EAL_PkeyCtx,
        hash: *const u8,
        hashLen: u32,
        sign: *const u8,
        signLen: u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyEncrypt(
        pkey: *const CRYPT_EAL_PkeyCtx,
        data: *const u8,
        dataLen: u32,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyDecrypt(
        pkey: *const CRYPT_EAL_PkeyCtx,
        data: *const u8,
        dataLen: u32,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyHEAdd(
        pkey: *const CRYPT_EAL_PkeyCtx,
        input: *const BSL_Param,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyHEMul(
        pkey: *const CRYPT_EAL_PkeyCtx,
        input: *const BSL_Param,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyPairCheck(
        pubKey: *mut CRYPT_EAL_PkeyCtx,
        prvKey: *mut CRYPT_EAL_PkeyCtx,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyPrvCheck(prvKey: *mut CRYPT_EAL_PkeyCtx) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyComputeShareKey(
        pkey: *const CRYPT_EAL_PkeyCtx,
        pubKey: *const CRYPT_EAL_PkeyCtx,
        share: *mut u8,
        shareLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetKeyLen(pkey: *const CRYPT_EAL_PkeyCtx) -> u32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetSecurityBits(pkey: *const CRYPT_EAL_PkeyCtx) -> u32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetKeyBits(pkey: *const CRYPT_EAL_PkeyCtx) -> u32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetSignLen(pkey: *const CRYPT_EAL_PkeyCtx) -> u32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyCtrl(
        pkey: *mut CRYPT_EAL_PkeyCtx,
        opt: i32,
        val: *mut ::std::os::raw::c_void,
        len: u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyBlind(
        pkey: *mut CRYPT_EAL_PkeyCtx,
        id: CRYPT_MD_AlgId,
        input: *const u8,
        inputLen: u32,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyUnBlind(
        pkey: *mut CRYPT_EAL_PkeyCtx,
        input: *const u8,
        inputLen: u32,
        out: *mut u8,
        outLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetId(pkey: *const CRYPT_EAL_PkeyCtx) -> CRYPT_PKEY_AlgId;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetParaId(pkey: *const CRYPT_EAL_PkeyCtx) -> CRYPT_PKEY_ParaId;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyCmp(a: *const CRYPT_EAL_PkeyCtx, b: *const CRYPT_EAL_PkeyCtx) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeySetExtData(
        pkey: *mut CRYPT_EAL_PkeyCtx,
        data: *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyGetExtData(pkey: *const CRYPT_EAL_PkeyCtx) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyUpRef(pkey: *mut CRYPT_EAL_PkeyCtx) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyEncapsInit(pkey: *mut CRYPT_EAL_PkeyCtx, params: *mut BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyDecapsInit(pkey: *mut CRYPT_EAL_PkeyCtx, params: *mut BSL_Param) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyEncaps(
        pkey: *const CRYPT_EAL_PkeyCtx,
        cipher: *mut u8,
        cipherLen: *mut u32,
        sharekey: *mut u8,
        shareKeyLen: *mut u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn CRYPT_EAL_PkeyDecaps(
        pkey: *const CRYPT_EAL_PkeyCtx,
        cipher: *const u8,
        cipherLen: u32,
        sharekey: *mut u8,
        shareKeyLen: *mut u32,
    ) -> i32;
}
